package com.wx.tgp.designpattern.prototypePattern;
import com.wx.tgp.designpattern.prototypePattern.deepPrototype.Resume;

/**
 * 原型模式
 */
public class Client {

    public static void main(String args[]){
        Client client = new Client();
//        client.shallow();
        client.deep();
    }

    /**
     * 深复制
     */
    public void deep(){
        Resume resume = new Resume();
        resume.setName("王旭");
        resume.setCompany("拓维");
        resume.setWorkDate("1999-2000");
        Resume resume1 = resume.Clone();
        resume1.setCompany("国家");
        resume1.setWorkDate("2000-2010");
        resume.display();
        resume1.display();
    }
    // 浅复制
//    public void shallow(){
//        Resume resume = new Resume();
//        WorkDate workDate = new WorkDate();
//        resume.setWorkDate("1990-2000");
//        resume.setName("王旭");
//        resume.setCompany("拓维");
//        // 这个方法相当于克隆了一个Resume对象
//        // 这个方法需要Resume对象实现Cloneable接口
//        // 并且重写Clone方法。
//        Resume resume2 = resume.Clone();
//        resume2.setCompany("国家");
//        resume2.setWorkDate("2000-2010");
//
//        resume2.display();
//        resume.display();
//    }
}
